#ifndef SCENE_H
#define SCENE_H

#include <map>
#include <string>
using namespace std;

#include "rendering.h"

class CScene
{
    private:
        CRenderer *pRenderer;

        /* //---

		vector<ShaderProgram> Shaders;

        vector<Object> Objects;

		vector<CMaterial> Materials;
		vector<Texture> Textures;
		vector<Color3> Colors;
        vector<RenderObject> RenderObjects;
        vector<Mesh> Meshes;

        vector<PhysicsObject> PhysicsObjects;

        //--- */
    public:
        void SetRenderer(CRenderer *pNewRenderer);
        CRenderer* GetRendererPointer();

        void Load(string sFilePath);

        void Render();

        /* //---

        map<string, int> ShaderNames;
        map<string, int> RenderObjectNames;
        map<string, int> PhysicsObjectNames;
        map<string, int> PhysicsTreeNames;
        map<string, int> ColorNames;
        map<string, int> TextureNames;
        map<string, int> MaterialNames;
        map<string, int> MeshNames; */
};

static float fvTexCoords[] =
{
    0.0f, 0.0f,
    1.0f, 0.0f,
    1.0f, 1.0f,

    0.0f, 0.0f,
    1.0f, 1.0f,
    0.0f, 1.0f,

    0.0f, 0.0f,
    1.0f, 0.0f,
    1.0f, 1.0f,

    0.0f, 0.0f,
    1.0f, 1.0f,
    0.0f, 1.0f,

    0.0f, 0.0f,
    1.0f, 0.0f,
    1.0f, 1.0f,

    0.0f, 0.0f,
    1.0f, 1.0f,
    0.0f, 1.0f,

    0.0f, 0.0f,
    1.0f, 0.0f,
    1.0f, 1.0f,

    0.0f, 0.0f,
    1.0f, 1.0f,
    0.0f, 1.0f,

    0.0f, 0.0f,
    1.0f, 0.0f,
    1.0f, 1.0f,

    0.0f, 0.0f,
    1.0f, 1.0f,
    0.0f, 1.0f,

    0.0f, 0.0f,
    1.0f, 0.0f,
    1.0f, 1.0f,

    0.0f, 0.0f,
    1.0f, 1.0f,
    0.0f, 1.0f
}; //temp ofc

static float fvCubeVertices[] =
{
    //front
    0.0f, 0.0f, 0.0f,
    1.0f, 0.0f, 0.0f,
    1.0f, 1.0f, 0.0f,

    0.0f, 0.0f, 0.0f,
    1.0f, 1.0f, 0.0f,
    0.0f, 1.0f, 0.0f,

    //back
    0.0f, 0.0f, 1.0f,
    1.0f, 0.0f, 1.0f,
    1.0f, 1.0f, 1.0f,

    0.0f, 0.0f, 1.0f,
    1.0f, 1.0f, 1.0f,
    0.0f, 1.0f, 1.0f,

    //left
    0.0f, 0.0f, 0.0f,
    0.0f, 0.0f, 1.0f,
    0.0f, 1.0f, 1.0f,

    0.0f, 0.0f, 0.0f,
    0.0f, 1.0f, 1.0f,
    0.0f, 1.0f, 0.0f,

    //right
    1.0f, 0.0f, 0.0f,
    1.0f, 0.0f, 1.0f,
    1.0f, 1.0f, 1.0f,

    1.0f, 0.0f, 0.0f,
    1.0f, 1.0f, 1.0f,
    1.0f, 1.0f, 0.0f,

    //top
    0.0f, 1.0f, 0.0f,
    1.0f, 1.0f, 0.0f,
    1.0f, 1.0f, 1.0f,

    0.0f, 1.0f, 0.0f,
    1.0f, 1.0f, 1.0f,
    0.0f, 1.0f, 1.0f,

    //bottom
    0.0f, 0.0f, 0.0f,
    1.0f, 0.0f, 0.0f,
    1.0f, 0.0f, 1.0f,

    0.0f, 0.0f, 0.0f,
    1.0f, 0.0f, 1.0f,
    0.0f, 0.0f, 1.0f
}; //temp ofc

#endif
